This invention relates to a method and apparatus for measuring quality of service parameters of networks delivering real time MPEG video.
The MPEG-2 system layer defines the MPEG-2 transport stream, otherwise known as the MPEG transport stream or MTS. The MPEG transport stream is composed of fixed length packets, each 188 bytes (or octets) long and having a four byte header. The remaining 184 bytes are payload or some combination of adaptation field and payload.
The MPEG transport stream may be used for real time delivery of compressed program material (audio and video) over public and private packet-switched networks. Such real time delivery of compressed program material supports a wide variety of applications, including video back haul, video distribution, and broadband video conferencing.
FIG. 1 illustrates transmitting terminal equipment and receiving terminal equipment for delivering program material (audio and video) over a packet switched network employing the MPEG transport stream.
Referring to FIG. 1A, the transmitting terminal equipment includes an MPEG encoder 1 and a network interface driver 2. A conventional MPEG encoder for receiving uncompressed digital audio and video data and generating MTS packets may be considered to include an audio encoder 4 that receives the audio data and produces an audio packetized elementary stream (PES), a video encoder 6 that receives the video data and produces a video PES, a controller 8 that generates timing and other control data, and a multiplexer 10 that operates under control of the controller to select the audio PES, the video PES and the control data in the sequence that is required in order to compose the MTS packets.
The encoder 1 receives a 27 MHz program clock reference (PCR) with the video data and a divider 14 divides the output signal of the program clock generator 12 by 300 to provide 90 kHz system clock references for decoding and presentation. The controller 8 counts the cycles of the PCR and periodically samples the count value and includes the PCR value in the adaptation field. The controller also counts the cycles of the 90 kHz system clock reference and periodically samples the system clock count value and includes sample values in the adaptation field as a presentation time stamp (PTS) or a decode time stamp (DTS).
Although FIG. 1 shows only one video encoder and one audio encoder, it will be appreciated by those skilled in the art that an MPEG encoder may include several video and audio encoders.
A network interface driver suitable for placing MTS packets on an IP network may include a high level driver, which receives the MTS packets from the MPEG encoder and carries out high level functions, such as organizing the MTS packets as IP packets, a low level driver that receives a sequence of bits from the high level driver and delivers the bits to the point of egress of the network interface driver, and a controller that controls operation of the high level driver and low level driver. Referring to FIG. 1A, the high level driver of the network interface driver 2 includes a packetizer 16 that receives the MTS packets from the MPEG encoder 1, constructs an IP packet containing seven MTS packets, and loads the IP packet into a buffer memory 18. The buffer memory 18 may be considered to be part of the low level driver. The IP packets are read from the buffer memory 18 and are loaded into a FIFO output register 22. The FIFO output register may be implemented by two registers that are input and output enabled in alternating fashion. When the network interface driver 2 receives a packet request, the controller 26 enables the FIFO output register to output an IP packet from the network interface driver 1 at the egress point A.
Referring to FIG. 1B, the receiving terminal equipment includes a network interface driver 32 and an MPEG decoder 34. A network interface driver suitable for receiving IP packets from an IP network and providing MTS packets to an MPEG decoder typically includes a low level hardware driver that receives a sequence of bits at the point of ingress of the network interface driver and delivers the sequence of bits as an IP packet to a high level driver. The high level driver recovers the seven MTS packets from the IP packet and supplies the MTS packets to the MPEG decoder. The network interface driver 32 has an ingress point B that is connected to a FIFO input register 42. The FIFO input register 42 is input and output enabled by the controller 44 so that an IP packet received at the ingress point B is loaded into the register 42 and is subsequently written to a buffer memory 48. The register 42 may be implemented by two registers that are input and output enabled in alternating fashion. The data stored in the buffer memory is read out in the order received and supplied to a depacketizer 52, which outputs the seven MTS packets in the IP packet to the MPEG decoder.
In the network interface driver 32 the low level network interface driver includes the FIFO register 42 and the buffer memory 48 and the high level network interface driver includes the depacketizer 52.
The MPEG decoder 34 comprises a demultiplexer 56 that operates under control of a controller 58 to divide the incoming MTS packets into the audio PES, the video PES and control data, an audio decoder 62 that outputs the audio data as a continuous stream and a video decoder 66 that outputs the video data as a continuous stream.
The controller 58 detects the PCR samples included in the MTS packets. A program clock generator 70 includes a phase-locked loop that uses the PCR sample values from the controller 58 to generate a 27 MHz program clock reference that is synchronized with the program clock reference received by the encoder 1. The decoder further includes a divider 74 that derives 90 kHz system clock references by dividing the 27 MHz program clock reference by 300.
Applications that employ MTS packets for real time delivery of compressed program material are very sensitive to video quality. An important determinant of video quality is the extent to which the network delivers the MTS packets with constant delay. Desirably, the variation in delay should not exceed about 2 ms. In addition, it is desirable that there should be no loss of packets or out of order packets, and no bit errors. Because delivery is real time and the MPEG bit stream is not error resilient, packet loss and packet bit errors may lead to noticeable visual artifacts.
Typically, a customer desiring to deliver real time compressed video over a public or private network will contract with the network operator for transport of the video according to a service level agreement, which may or may not define quality of service (QoS) parameters and the values of these parameters that the network operator is willing to provide. A customer may wish to be able to measure the actual performance of the network in terms of accepted QoS parameters, particularly when visual artifacts are being observed. Because the internet protocol (IP) does not inherently support guaranteed values of QoS parameters, it is very difficult for a customer to have an independent means for determining the actual QoS that the network delivers.